博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Flask – SQLAlchemy成员增加
阅读量:4599 次
发布时间:2019-06-09

本文共 3259 字,大约阅读时间需要 10 分钟。

目录

简介

结构

$ tree -I "__pycache*|*.pyc" -FCL 3.|-- database.db|-- readme.md|-- templates/|   |-- addnew.html|   |-- home.html|   `-- show_all.html`-- views.py

展示

1. 主页

720033-20190719214954510-95842715.png

2. 学生信息查看

720033-20190719215106361-986697090.png

3. 添加学生信息

720033-20190719215214766-1723489616.png

技术

  • Flask – SQLAlchemy的使用
  • flask中表单数据的传递

运行

python .\views.py

代码

创建数据库表单

# crdb.pyimport sqlite3conn = sqlite3.connect('database.db')print "Opened database successfully";conn.execute('CREATE TABLE students (name TEXT, addr TEXT, city TEXT, pin TEXT)')print "Table created successfully";conn.close()

views视图

from flask import Flask, request, flash, url_for, redirect, render_templatefrom flask_sqlalchemy import SQLAlchemyapp = Flask(__name__)app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database.db'app.config['SECRET_KEY'] = "random string"app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = Falsedb = SQLAlchemy(app)class Student(db.Model):    # __tablename__ = 'student'    id = db.Column(db.Integer, primary_key=True)    name = db.Column(db.String(100))    city = db.Column(db.String(50))    addr = db.Column(db.String(200))    pin = db.Column(db.String(10))    def __init__(self, name, city, addr, pin):        self.name = name        self.city = city        self.addr = addr        self.pin = pin@app.route('/')def home():    """主页"""    return render_template('home.html')@app.route('/show_all')def show_all():    """展示所有"""    data = Student.query.all()    return render_template('show_all.html', students=data)@app.route('/addnew', methods=['GET', 'POST'])def addnew():    """添加新成员"""    if request.method == 'POST':        f_name = request.form['name']        f_city = request.form['city']        f_addr = request.form['addr']        f_pin = request.form['pin']        if not f_name or not f_city or not f_addr:            flash('请填入必要项')        else:            stuinfo = Student(f_name, f_city, f_addr, f_pin)            db.session.add(stuinfo)            db.session.commit()            flash('添加成功')            return redirect(url_for('show_all'))    return render_template('addnew.html')if __name__ == '__main__':    # db.drop_all()    db.create_all()    app.run(debug=True)

home主页

    
主页

查看学生信息

添加学生信息

添加成员addnew.html

         

学生信息表


{%- for category, message in get_flashed_messages(with_categories = true) %}
{
{ message }}
{%- endfor %}

返回主页

展示页show_all

   

学生表


添加新成员

{% for student in students %}
{% endfor %}
姓名 城市 地址 邮编
{
{ student.name }}
{
{ student.city }}
{
{ student.addr }}
{
{ student.pin }}

消息提示

消息通知: {%- for message in get_flashed_messages() %} {
{ message }} {%- endfor %}

返回主页

转载于:https://www.cnblogs.com/xuwei1/p/11215931.html

你可能感兴趣的文章
新安装Win10
查看>>
23种设计模式(5):原型模式
查看>>
Android编程之LayoutInflater的inflate方法具体解释
查看>>
hdfs操作手册
查看>>
C语言2——指针
查看>>
[bzoj1060] [ZJOI2007]时态同步
查看>>
java执行jar包
查看>>
谈谈个人网站的建立(一)——建站历史和技术架构
查看>>
设计模式 关注点分离
查看>>
儿子和女儿——解释器和编译器的区别与联系
查看>>
11.m进制转十进制
查看>>
架构设计的心得-----(转)
查看>>
CentOS安装crontab及使用方法
查看>>
基于OpenGL的起重机模拟
查看>>
需求说明书
查看>>
比特币——点对点电子现金系统
查看>>
以 Ext.Net 1.2.0 为例了解网页测试工具 HttpWatch
查看>>
金融资产管理项目-银企直连
查看>>
Python函数式编程
查看>>
UI学习第一篇 (控件)
查看>>